/**代码规范
 * 模式    和   视图    分开编写
 * 多写注释
 * 起名要有意义  类名 大驼峰 ；方法 变量名 小驼峰
 * 保证一个方法只能实现一个功能
 * 在方法中，如果有参数传入，首先进行参数认证
 * 永远不要在循环中使用 + 拼接字符串
 * 凡是一个值使用两次以上，就定义一个变量来保存它
 */
package com.medical.service.essentialinfo.essentialinfoImpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageInfo;
import com.medical.mapper.essentialinfo.OrganizationMapper;
import com.medical.pojo.MedicalInstitutions;
import com.medical.pojo.PageMedicalInstitutions;
import com.medical.service.essentialinfo.OrganizationService;

/**
 * @author 袁付杰
 *
 */

//Organization  定点医疗机构信息维护
	//1. 操作员：录入查询条件，点查询；--> 系统：显示检索结果；
	//2. 操作员：修改定点医疗机构信息，点保存；-->. 系统：保存定点医疗机构信息。
	//3. 操作员：删除定点医疗机构信息，点保存；-->. 系统：保存定点医疗机构信息。
	//4. 操作员：如果是新增信息，可直接在界面录入数据，可点击新增按钮添加多条记录，点保存；--> 系统：保存定点医疗机构信息。
@Service
public class OrganizationServiceImpl implements OrganizationService{
	
	private PageMedicalInstitutions pageMedicalInstitutions = new PageMedicalInstitutions();
	
	@Autowired
	private OrganizationMapper organizationMapper;

		//1. 操作员：如果对已经存在的病种进行维护则先录入条件，点查询；--> 系统：显示检索出的数据；
			//分页显示数据，模糊查询
		//1.1机构编号查询
		public PageMedicalInstitutions queryOrganizationById(String organizationNumber) {
			
			//查询的结果
			List<MedicalInstitutions> medicalInstitutionsById = organizationMapper.queryOrganizationById(organizationNumber);
			//分页的结果
			PageInfo<MedicalInstitutions> pageInfo = new PageInfo<>(medicalInstitutionsById);
			//装入 PageMedicalInstitutions 的实体类
			pageMedicalInstitutions.setMedicalInstitutions(medicalInstitutionsById);
			pageMedicalInstitutions.setMedicalInstitutionsPageInfo(pageInfo);
			return pageMedicalInstitutions;
			
		}
		//1.2机构名称查询
		@Override
		public PageMedicalInstitutions queryOrganizationByName(String organizationName) {
			//查询的结果
			List<MedicalInstitutions> medicalInstitutionsByName = organizationMapper.queryOrganizationByName(organizationName);
			//分页的结果
			PageInfo<MedicalInstitutions> pageInfo = new PageInfo<>(medicalInstitutionsByName);
			//装入 PageMedicalInstitutions 的实体类
			pageMedicalInstitutions.setMedicalInstitutions(medicalInstitutionsByName);
			pageMedicalInstitutions.setMedicalInstitutionsPageInfo(pageInfo);
			return pageMedicalInstitutions;
		}
		//1.3 无任何输入全查询
		@Override
		public PageMedicalInstitutions queryOrganizationAll() {
			
			List<MedicalInstitutions> medicalInstitutionsAll = organizationMapper.queryOrganizationAll();
			PageInfo<MedicalInstitutions> pageInfo = new PageInfo<>(medicalInstitutionsAll);
			pageMedicalInstitutions.setMedicalInstitutions(medicalInstitutionsAll);
			pageMedicalInstitutions.setMedicalInstitutionsPageInfo(pageInfo);
			return pageMedicalInstitutions;
		}
		
		//2. 操作员：修改定点医疗机构信息，点保存；-->. 系统：保存定点医疗机构信息。
		public int updateOrganization(MedicalInstitutions medicalInstitutions) {
			return organizationMapper.updateOrganization(medicalInstitutions);
			
		}
		
		//3. 操作员：删除定点医疗机构信息，点保存；-->. 系统：保存定点医疗机构信息。
		public int deleteOrganization(String organizationNumber) {
			return organizationMapper.deleteOrganization(organizationNumber);
		}
		
		//4. 操作员：如果是新增信息，可直接在界面录入数据，可点击新增按钮添加多条记录，点保存；--> 系统：保存定点医疗机构信息。
		public int insertOrganization(MedicalInstitutions medicalInstitutions) {
			return organizationMapper.insertOrganization(medicalInstitutions);
		}

		
}
